home *** CD-ROM | disk | FTP | other *** search
/ Aminet 25 / Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso / Aminet / gfx / edit / softborder.lha / softborder.ifx next >
Encoding:
Text File  |  1998-03-11  |  4.4 KB  |  214 lines

  1. /*
  2.  * $VER: softborder 0.6
  3.  * by Carl Licke / Turbid design
  4.  * mailto:carl.licke@swipnet.se
  5.  * http://home2.swipnet.se/~w-24653/
  6.  *
  7.  * Arexx script for ImageFX
  8.  */
  9.  
  10. OPTIONS RESULTS
  11.  
  12. gauss  =GETCLIP('softborder_gauss')
  13. border =GETCLIP('softborder_border')
  14. shade  =GETCLIP('softborder_shade')
  15. incr   =GETCLIP('softborder_incr')
  16. bgswap =GETCLIP('softborder_bgswap')
  17. bgcol  =GETCLIP('softborder_bgcol')
  18. mgik   =GETCLIP('softborder_mgik')
  19.  
  20. /* ------ here you may change the defaults ------ */
  21. IF gauss=''  THEN gauss=2
  22. IF border='' THEN border=15
  23. IF shade=''  THEN shade=100
  24. IF incr=''   THEN incr=5
  25. IF bgswap='' THEN bswap=0
  26. IF bgcol=''  THEN bgcol=0
  27. IF mgik=''   THEN mgik=0
  28.  
  29. Gadget.1 = 'I/140/18/smoothness (0-5)/'gauss
  30. Gadget.2 = 'I/140/35/border size/'border
  31. Gadget.3 = 'I/140/52/shade (0-100)/'shade
  32. Gadget.4 = 'I/140/69/border increase/'incr
  33. Gadget.5 = 'X/230/19/magic scissors/'mgik
  34. Gadget.6 = 'X/230/36/background from swap/'bgswap
  35. Gadget.7 = 'X/230/53/pick color for backg./'bgcol
  36. Gadget.8 = 'X/230/70/save these settings/1'
  37.  
  38. ComplexRequest '"softborder"' 8 Gadget 430 110
  39. IF rc ~= 0 THEN EXIT
  40.  
  41. gauss  = result.1
  42. border = result.2
  43. shade  = result.3
  44. incr   = result.4
  45. mgik   = result.5
  46. bgswap = result.6
  47. bgcol  = result.7
  48. saveit = result.8
  49.  
  50. ifxver=0
  51. ADDRESS COMMAND 'list ImageFX:Matrix/GuassianLow ImageFX:Matrix/GaussianMedium ImageFX:Matrix/GuassianHigh >NIL:'
  52. IF rc = 0 THEN ifxver=1
  53. ADDRESS COMMAND 'list ImageFX:Storage/Convolve/GaussianLow ImageFX:Storage/Convolve/GaussianMedium ImageFX:Storage/Convolve/GaussianHigh >NIL:'
  54. IF rc = 0 THEN ifxver=2
  55. IF ifxver=0 THEN DO
  56.   RequestNotify 'Error! Please contact carl.licke@swipnet.se'
  57.   EXIT
  58. END
  59.  
  60. IF saveit=1 THEN DO
  61.   CALL SETCLIP('softborder_gauss', gauss)
  62.   CALL SETCLIP('softborder_border', border)
  63.   CALL SETCLIP('softborder_shade', shade)
  64.   CALL SETCLIP('softborder_incr', incr)
  65.   CALL SETCLIP('softborder_mgik', mgik)
  66.   CALL SETCLIP('softborder_bgswap', bgswap)
  67.   CALL SETCLIP('softborder_bgcol', bgcol)
  68. END
  69.  
  70. bgr=255
  71. bgg=255
  72. bgb=255
  73.  
  74. GetPalette '0'
  75. PARSE VAR result r g b
  76.  
  77. IF bgcol=1 & bgswap=1 THEN DO
  78.   RequestNotify 'No background pick, you told me to use swap.'
  79.   bgcol=0
  80. END
  81.  
  82. IF bgcol=1 THEN DO
  83.   ActiveColor 0
  84.   Message 'pick background color'
  85.   Pick
  86.   WaitFor SELECTUP
  87.   GetPalette '-1'
  88.   PARSE VAR result bgr bgg bgb
  89.   Message ''
  90. END
  91.  
  92. Redraw Off
  93.  
  94. Swap
  95. SaveBufferAs ILBM "T:softbordertemp.ilbm"
  96. Swap
  97. SaveAlphaAs ILBM "T:softborderalphatemp.ilbm"
  98.  
  99. ActiveColor 0
  100. DrawMode Normal
  101. Pen 0 1
  102. AlphaChannel Off
  103. Blend 100
  104. EdgeMode Normal 0
  105. Transparency 0 0 1
  106. FillMode Solid 0 0 0 SMOOTH
  107. SaveUndo
  108. Undo Off
  109.  
  110. GetMain
  111. PARSE VAR result name width height depth
  112.  
  113. newwidth=width+(2*incr)
  114. newheight=height+(2*incr)
  115.  
  116. IF mgik=1 THEN
  117.   MagicScissors
  118. ELSE
  119.   Scissors
  120. Box 0 0 width height
  121. Region Full
  122. CreateBuffer newwidth newheight+8 127 127 127 FORCE
  123.  
  124. NewArea
  125. AddArea newwidth/2 newheight/2
  126. FreeDraw
  127.  
  128. Buffer2Swap
  129.  
  130. Region Brush
  131. Brightness 127
  132. Brightness 127
  133. Region Full
  134. ClearBuffer 0 0 0 FORCE
  135.  
  136. DrawMode Normal
  137. EdgeMode FeatherIn border
  138. NewArea
  139. AddArea newwidth/2 newheight/2
  140. FreeDraw
  141. EdgeMode Normal 0
  142. DrawMode Normal
  143.  
  144. IF ifxver=1 THEN DO
  145. IF gauss=1 THEN DO
  146.   Convolve "Matrix/GuassianLow"
  147. END
  148. IF gauss=2 THEN DO
  149.   Convolve "Matrix/GaussianMedium"
  150. END
  151. IF gauss=3 THEN DO
  152.   Convolve "Matrix/GuassianHigh"
  153. END
  154. IF gauss=4 THEN DO
  155.   Convolve "Matrix/GuassianHigh"
  156.   Convolve "Matrix/GuassianHigh"
  157. END
  158. IF gauss=5 THEN DO
  159.   Convolve "Matrix/GuassianHigh"
  160.   Convolve "Matrix/GuassianHigh"
  161.   Convolve "Matrix/GuassianHigh"
  162. END
  163. END
  164.  
  165. IF ifxver=2 THEN DO
  166. IF gauss=1 THEN DO
  167.   Convolve "Storage/Convolve/GaussianLow"
  168. END
  169. IF gauss=2 THEN DO
  170.   Convolve "Storage/Convolve/GaussianMedium"
  171. END
  172. IF gauss=3 THEN DO
  173.   Convolve "Storage/Convolve/GaussianHigh"
  174. END
  175. IF gauss=4 THEN DO
  176.   Convolve "Storage/Convolve/GaussianHigh"
  177.   Convolve "Storage/Convolve/GaussianHigh"
  178. END
  179. IF gauss=5 THEN DO
  180.   Convolve "Storage/Convolve/GaussianHigh"
  181.   Convolve "Storage/Convolve/GaussianHigh"
  182.   Convolve "Storage/Convolve/GaussianHigh"
  183. END
  184. END
  185.  
  186. Crop 0 0 newwidth newheight
  187.  
  188. Buffer2Alpha
  189.  
  190. ClearBuffer bgr bgg bgb FORCE
  191.  
  192. IF bgswap=1 THEN DO
  193.   LoadBrush "T:softbordertemp.ilbm" FORCE
  194.   FillMode Tile 0 0 0 Smooth
  195.   FloodFill 0 0 1
  196.   FillMode Solid 0 0 0 Smooth
  197. END
  198.  
  199. Merge shade ALPHA
  200.  
  201. Swap
  202. LoadBuffer "T:softbordertemp.ilbm" FORCE
  203. Swap
  204. ADDRESS COMMAND 'Delete "T:softbordertemp.ilbm" QUIET'
  205. KillBrush
  206. KillAlpha
  207. LoadAlpha "T:softborderalphatemp.ilbm" Force
  208. ADDRESS COMMAND 'Delete "T:softborderalphatemp.ilbm" QUIET'
  209. SetPalette 0 r g b
  210. Redraw On
  211. Undo On
  212.  
  213. EXIT
  214.